package com.fantasy.blog.service;

import com.fantasy.blog.dao.pojo.SysUser;
import com.fantasy.blog.vo.Result;
import com.fantasy.blog.vo.UserVo;
import org.springframework.transaction.annotation.Transactional;

import java.io.IOException;

@Transactional
public interface SysUserService {
    /**
     * 通过id获得user
     * @param id
     * @return
     */
    SysUser findUserById(Long id);

    /**
     * 通过id获取一个user信息，用于评论区显示
     * @param id
     * @return
     */
    UserVo findUserVoById(Long id);

    /**
     * 判断账号密码是否正确，此处密码已经被加密，和数据库中一致
     * @param account
     * @param password
     * @return
     */
    SysUser findUser(String account, String password);

    /**
     * 通过token获取user
     * @param token
     * @return
     */
    Result findUserByToken(String token);

    /**
     * 通过账号查找用户
     * @param account
     * @return
     */
    SysUser findUserByAccount(String account);

    /**
     * 保存一个账户
     * @param sysUser
     */
    void save(SysUser sysUser);

    /**
     * 通过qq查询一个用户
     * @param qq
     * @return
     */
    SysUser findUserByQQ(String qq);

    /**
     * 创建一个用户
     * @param qq
     * @param email
     * @return
     */
    SysUser creatUserByQQ(String qq, String email) throws IOException;
}
